feat: Faster requiring using optional lazy loading #526
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #525
I have done some tweaking and added a proof of concept lazy loading to the Twilio module to see if it improves the loading time, see the compare for reference.
When lazy loading is disabled(default), test returns a 600ms timeframe:
When lazy loading is enabled, test returns a 16ms timeframe:
The require of Twilio has been changed slightly for the
initializer
, instead of auto requiring everything, I made it into getter. This already gave a small increase. But the biggest change was removing all therequire
s fromTwilio.js
. I moved those to getters as well.And the requiring of the
RestClient.js
is also a big time consumer, so I made a getter for that as well.Problem is that the
Twilio.js
file is automatically generated.. but my compare should at least show that certain optimizations are possible. It would be great if the code generator is able to generate these optimizations.Checklist
If you have questions, please file a support ticket, or create a GitHub Issue in this repository.